home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / midi / gfft.lha / gfft-2.03 / source / gfft-2.03-source.lha / settings.h < prev    next >
C/C++ Source or Header  |  1996-01-02  |  6KB  |  183 lines

  1. /***************************************************************************
  2.  *          Copyright (C) 1994  Charles P. Peterson                  *
  3.  *         4007 Enchanted Sun, San Antonio, Texas 78244-1254             *
  4.  *              Email: Charles_P_Peterson@fcircus.sat.tx.us                *
  5.  *                                                                         *
  6.  *          This is free software with NO WARRANTY.                  *
  7.  *          See gfft.c, or run program itself, for details.              *
  8.  *              Support is available for a fee.                      *
  9.  ***************************************************************************
  10.  *
  11.  * Program:     gfft--General FFT analysis
  12.  * File:        settings.h
  13.  * Purpose:     define or declare settings
  14.  * Author:      Charles Peterson (CPP)
  15.  * History:     31-May-1993 CPP; Created.
  16.  *              9-Aug-94 CPP (1.10); Hidden3D setting
  17.  *              28-Aug-94 CPP (1.12); fix LowFrequency for FFP
  18.  *               7-Jan-95 CPP (1.19); Moved types to gfft.h for port
  19.  *              19-Jan-95 CPP (1.21); Topaz command
  20.  * Comment:     Options are defined here if DEFINEHERE is defined.
  21.  *              *.c should undefine DEFINEHERE afterwards
  22.  */
  23.  
  24. #include <stdio.h>      /* This is needed below for FILE* */
  25. #include <limits.h>     /* ULONG_MAX and LONG_MAX */
  26. #include <float.h>      /* DBL_MAX */
  27. #include "defxtern.h"   /* DEFXTERN */
  28.  
  29. /*
  30.  * Definitions
  31.  */
  32.  
  33. #define RECTANGLE_WINDOW 0
  34. #define TRIANGLE_WINDOW 1
  35. #define PARZEN_WINDOW 2
  36. #define WELCH_WINDOW 3
  37. #define HANN_WINDOW 4
  38. #define HAMMING_WINDOW 5
  39. #define BLACKMAN_HARRIS_74DB_WINDOW 6
  40. #define BLACKMAN_HARRIS_92DB_WINDOW 7
  41.  
  42. #define FORWARD_FFT 1
  43. #define INVERSE_FFT 2
  44. #define POWER_SPECTRUM 4
  45. #define AMPLITUDE_SPECTRUM 8
  46. #define MEAN_NORMALIZATION 16
  47. #define TWO_SIDED 32
  48.  
  49.  
  50.  
  51. #define INPUT_FORMAT_DEFAULTS {DEFAULT_INPUT_ZERO,DEFAULT_INPUT_BITS,\
  52. DEFAULT_INPUT_BINARY}
  53.  
  54. #define OUTPUT_FORMAT_DEFAULTS {DEFAULT_OUTPUT_ZERO,DEFAULT_OUTPUT_BITS,\
  55. DEFAULT_OUTPUT_BINARY}
  56.  
  57. #define NO_PLOT 0
  58. #define GNUPLOT_PLOT 1
  59. #define ANY_PLOT 1
  60.  
  61. #define AUTO_RATE 0.0L   /* This never-valid rate means 'automatic' */
  62. #define INVALID_RATE DBL_MAX  /* This unuseable rate means 'invalid' */
  63. #define MAX_BINS -1L  /* This unuseable value means 'maximum' for file */
  64. #define INVALID_BINS -2L  /* This unuseable value means 'invalid' */
  65. #define INVALID_INTERLEAVE ULONG_MAX  /* This means 'invalid' */
  66. #define NO_SMOOTHING -1L      /* Do not perform smoothing */
  67. #define INVALID_SMOOTHING -2L /* User last set invalid value */
  68. #define NOT_SET -1
  69. #define INVALID_SET -2
  70. #define DEFAULT_TIME_OVERLAP 0.50
  71.  
  72. #define HIGHEST_FREQUENCY DBL_MAX
  73. /* #define LOWEST_FREQUENCY DBL_MIN  * problem with FFP; 0 == DBL_MIN */
  74. #define LOWEST_FREQUENCY -1.0  
  75.  
  76. #define HIGHEST_Y DBL_MAX
  77. #define LOWEST_Y DBL_MIN
  78.  
  79.  
  80. #define MIN_QUANTIZATION DBL_MIN
  81. #define BAD_QUANTIZATION DBL_MAX
  82.  
  83. #define DEF_ROT_X 60.0
  84. #define DEF_ROT_Z 30.0
  85.  
  86. #define INVALID_ROTATION -361.0
  87.  
  88. /*
  89.  * FileFormat info needed in this scope
  90.  */
  91. #define UNFORMATTED 0
  92.  
  93.  
  94. /*
  95.  * These options are set directly by interactive/batch commands
  96.  */
  97. DEFXTERN (BOOLEAN, Amplitude, TRUE)
  98. DEFXTERN (BOOLEAN, Appending, FALSE)
  99. DEFXTERN (struct cal_st, *CalibrationList, NULL)
  100. DEFXTERN (ULONG, Channel, 1L)
  101. DEFXTERN (BOOLEAN, CombinePlots, FALSE)
  102. DEFXTERN (BOOLEAN, Db, FALSE)
  103. DEFXTERN (ULONG, Frames, ULONG_MAX)
  104. DEFXTERN (BOOLEAN, Header, TRUE)
  105. DEFXTERN (BOOLEAN, Hidden3D, TRUE)
  106. DEFXTERN (double, HighFrequency, HIGHEST_FREQUENCY)
  107. DEFXTERN (double, HighY, HIGHEST_Y)
  108. DEFXTERN (BOOLEAN, IgnoreFormat, FALSE)
  109. DEFXTERN (IOFormatS, InputFormat, INPUT_FORMAT_DEFAULTS)
  110. DEFXTERN (ULONG, Interleave, 1)
  111. DEFXTERN (BOOLEAN, LogX, FALSE)
  112. DEFXTERN (BOOLEAN, LogY, FALSE)
  113. DEFXTERN (double, LowFrequency, LOWEST_FREQUENCY)
  114. DEFXTERN (double, LowY, LOWEST_Y)
  115. DEFXTERN (ULONG, Key, 0)
  116. DEFXTERN (BOOLEAN, Mean, TRUE)
  117. DEFXTERN (double, Multiply, 1.0L)
  118. DEFXTERN (long, NumberBins, MAX_BINS)
  119. DEFXTERN (BOOLEAN, Numerical, FALSE)
  120. DEFXTERN (ULONG, Octave, 1L)
  121. DEFXTERN (BOOLEAN, OneShotOnly, FALSE)
  122. DEFXTERN (IOFormatS, OutputFormat, OUTPUT_FORMAT_DEFAULTS)
  123. DEFXTERN (BOOLEAN, Overlap, TRUE)
  124. DEFXTERN (BOOLEAN, Pad, FALSE)
  125. DEFXTERN (BOOLEAN, Parseval, TRUE)
  126. DEFXTERN (BOOLEAN, Pink, FALSE)
  127. DEFXTERN (int, Plot, NO_PLOT)
  128. DEFXTERN (struct list_st *, PlotCommands, NULL)
  129. DEFXTERN (char, *PlotOutput, NULL)
  130. DEFXTERN (BOOLEAN, Power, FALSE)
  131. DEFXTERN (BOOLEAN, PSDensity, FALSE)
  132. DEFXTERN (double, Quantization, MIN_QUANTIZATION)
  133. DEFXTERN (BOOLEAN, Quiet, FALSE)
  134. DEFXTERN (double, Rate, AUTO_RATE)
  135. DEFXTERN (double, RotX, DEF_ROT_X)
  136. DEFXTERN (double, RotZ, DEF_ROT_Z)
  137. DEFXTERN (char, *ReadName, NULL)
  138. DEFXTERN (FILE, *ReadPtr, NULL)
  139. DEFXTERN (BOOLEAN, RepeatOnly, FALSE)
  140. DEFXTERN (BOOLEAN, SaveMemory, FALSE)
  141. DEFXTERN (long, SmoothingSegments, NO_SMOOTHING)
  142. DEFXTERN (long, SquaredSmoothing, FALSE)
  143. DEFXTERN (ULONG, StartByte, 0)
  144. DEFXTERN (ULONG, StartFrame, 0)
  145. DEFXTERN (ULONG, StopByte, ULONG_MAX)
  146. DEFXTERN (char, *Terminal, NULL)
  147. DEFXTERN (BOOLEAN, Time3D, FALSE)
  148. DEFXTERN (long, TimeOffset, NOT_SET)
  149. DEFXTERN (double, TimeOverlap, DEFAULT_TIME_OVERLAP)
  150. DEFXTERN (long, TimeSegments, NOT_SET)
  151. DEFXTERN (long, TimeSegSize, NOT_SET)
  152. DEFXTERN (BOOLEAN, Topaz, FALSE)
  153. DEFXTERN (int, WindowType, RECTANGLE_WINDOW)
  154. DEFXTERN (char, *WriteName, NULL)
  155. DEFXTERN (FILE, *WritePtr, NULL)
  156.  
  157. /*
  158.  * These options are set by formatted files
  159.  */
  160. DEFXTERN (int, FileFormat, UNFORMATTED)
  161. DEFXTERN (int, FileFormatOK, FALSE)
  162. DEFXTERN (double, FileRate, AUTO_RATE)
  163. DEFXTERN (ULONG, FileDataOffset, 0)
  164. DEFXTERN (ULONG, FileFrames, 0)
  165. DEFXTERN (double, FileVolume, 1.0L)
  166. DEFXTERN (int, FileChannels, 1)
  167. DEFXTERN (ULONG, FileOneShotHiFrames, 0)
  168. DEFXTERN (ULONG, FileRepeatHiFrames, 0)
  169. DEFXTERN (int, FileOctaves, 1)
  170.  
  171. /*
  172.  * When the OK module gains control, it decides to use the following
  173.  */
  174.  
  175. DEFXTERN (double, OkRate, AUTO_RATE)
  176. DEFXTERN (ULONG, OkFrames, ULONG_MAX)
  177. DEFXTERN (ULONG, OkOffset, 0)
  178. DEFXTERN (int, OkChannels, 1)
  179. DEFXTERN (ULONG, OkStartFrame, 0)
  180. DEFXTERN (int, OkOctaveOffset, 0)
  181. DEFXTERN (double, OkSegmentTime, 0.0)
  182. DEFXTERN (char, *OkWriteName, NULL)
  183.